// class Animal {
//     declare private _animal: Animal | 0
//     declare private _flag: string
//     constructor(animal: Animal, flag: string) {
//         this._animal = animal
//         this._flag = flag
//     }
//     say() {
//         if (this._animal !== 0) {
//             this._animal.say()
//         }
//     }
// }
// class Dog extends Animal {
//     declare private _name: string
//     declare private _dog: Dog
//     constructor(name: string) {
//         super(this._dog)
//         this._name = name
//     }
//     getName(): string {
//         return this._name
//     }
// }

class A {
    declare private _flag: string
    constructor(flag: string) {
        this._flag = flag
    }
    is(): boolean {
        return this._flag !== "no"
    }
    test() {
        console.log("父类处理请求");
    }
}
class B extends A {
    constructor(flag: string) {
        super(flag)
    }
    test() {
        if (this.is()) {
            console.log(this.constructor.name + '处理了请求');
        } else {
            console.log(this.constructor.name + '不需要处理，移交父类');
            super.test()
        }
    }
}


const b = new B('no')
const b1 = new B('yes')
b.test()
b1.test()